<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<div>
			load()方法是用于服务器端载入xml,并且限制在同一台服务器上的xml文件，那么在载入的
			时候有两种模式：同步和异步。
			同步：在加载xml完成之前代码不会继续执行，直到完全加载了xml再返回。（可能会造成假死）。
			xmlDom.asyns = false;设置同步
			异步：就是在加载xml时 ，javascript会把任务丢给浏览器内部后台去处理，不会造成堵塞但是要配合
			readystatechange事件使用所以通常使用异步方式。（默认异步）
			 异步加载获取不到xml信息。原因是它没有完全加载xml就返回了，在浏览器内部加载一点返回一点。
		</div>
			
	</body>
	
	<script>
		//异步加载
		var xmlDom = creatXmlDom();
		xmlDom.async =true;//异步（默认就是）
		
		xmlDom.onreadystatechange = function(){//这个事件必须放在load()方法前面，意图先载入事件,在当load()记载才能激活。
			//alert(xmlDom01.readyState);
			if(xmlDom.readyState==4){// 1表示正在加载，2表示DOM已经加载完毕数据3表示DOM可以使用但是某些部分还无法访问4表示已经完全可以
				
				if(xmlDom.parseError.errorCode==0){//状态码为0表示解析的原文件正确
					
				alert(xmlDom.xml);
			//	alert(this===xmlDom);//false
			}else{ //当原文件出现错误时
				throw new  Error('错误行号：'+xmlDom.parseError.line+
									'\n错误代码：'+xmlDom.parseError.errorCode+
									'\n错误解释：'+xmlDom.parseError.reason
				
								);
			}
			
			
			}
			//ps：onreadystatechange 比较特殊，里面的this 表示window而不是执行的object
		}
		
		xmlDom.load("xmlDomText.xml");//
		
		
		
			//兼容不同ie版本创建xml对象
		function creatXmlDom(){
			//ie的不同版本
			var version=[
					'MSXML2.DOMDocument6.0',
					'MSXML2.DOMDocument3.0',
					'MSXML2.DOMDocument'
					
				];
				//循环判断支持哪个
			for(var i=0;i<version.length;i++){
				try{
				var xmlDom = new ActiveXObject(version[i]);
				return xmlDom;
				}catch(e){
					//错误跳过不处理
				}
			
			}
			throw new Error('请使用ie浏览器')
		}
	</script>
</html>
